home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 24 / AACD 24.iso / AACD / System / ReqToolsLib / Source / reqtools / COMPILE.README < prev    next >
Encoding:
Text File  |  2001-07-02  |  2.0 KB  |  66 lines

  1. How to compile reqtools.library for Amiga:
  2.  
  3. NOTES:
  4.  
  5. - This will compile a C only version. No assembly files are used.
  6.  
  7.  
  8. REQUIREMENTS:
  9.  
  10. - Geek Gadgets. Might also work with older versions of GCC, but
  11.   you need at least one which supports registerized parameters.
  12.  
  13.   
  14. COMPILING:
  15.  
  16. - Make sure the GG environment is "initialized":
  17.  
  18.     stack 500000
  19.     execute GG:Sys/S/GG-Startup
  20.   
  21. - First install the include files:
  22.  
  23.     cd amigaincludesforgcc
  24.     multiview README
  25.     execute README
  26.  
  27.   You also have to add the following macro to GG:include/inline/macros.h,
  28.   because it is missing in there (-> there does not seem to be any other
  29.   library function in any other library which takes 5 parameters and one
  30.   of the parameters is in register A4):
  31.   
  32.   #define LP5A4(offs, rt, name, t1, v1, r1, t2, v2, r2, t3, v3, r3, t4, v4, r4, t5, v5, r5, bt, bn) \
  33.   ({                                \
  34.      t1 _##name##_v1 = (v1);                    \
  35.      t2 _##name##_v2 = (v2);                    \
  36.      t3 _##name##_v3 = (v3);                    \
  37.      t4 _##name##_v4 = (v4);                    \
  38.      t5 _##name##_v5 = (v5);                    \
  39.      {                                \
  40.     register rt _##name##_re __asm("d0");            \
  41.     register struct Library *const _##name##_bn __asm("a6") = (struct Library*)(bn); \
  42.     register t1 _n1 __asm(#r1) = _##name##_v1;        \
  43.     register t2 _n2 __asm(#r2) = _##name##_v2;        \
  44.     register t3 _n3 __asm(#r3) = _##name##_v3;        \
  45.     register t4 _n4 __asm(#r4) = _##name##_v4;        \
  46.     register t5 _n5 __asm(#r5) = _##name##_v5;        \
  47.     __asm volatile ("exg d7,a4\n\tjsr a6@(-"#offs":W)\n\texg d7,a4" \
  48.     : "=r" (_##name##_re)                    \
  49.     : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5) \
  50.     : "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory");    \
  51.     _##name##_re;                        \
  52.      }                                \
  53.   })
  54.  
  55.  
  56. - Then compile the library
  57.  
  58.     cd /
  59.     make -f Makefile.gcc
  60.  
  61. - This will create the reqtools.library file in RAM:
  62.  
  63.  
  64. --
  65. Georg Steger <georg.steger@rolmail.net>
  66.